第 1 章 jQ起步
第 2 章 jQ解密技术
第 3 章 高效选择的技巧与原理
第 4 章 文档对象的操作及高效实践
4.1 DOM标准
1 分解DOM
2 HTML DOM
3 DOM Core
Netscape document.layers[“id”]
微软 document.all[“id”]
0级DOM
1998.10 DOM Level1
4 DOM文档树
4.2 创建节点
元素、属性、文档、注释
1 创建元素
综上:虽然jQ方法简易,去拖延了代码的执行效率。建议多用JS直接操作DOM
4.3 插入元素
jQuery实现
- 节点内部插入内容:append,appendTo,prepend,prependTo
- 节点外部插入内容:after,before,insertAfter,insertBefore
- 插入内容的破坏性
1.3.2中,appendTo,prependTo,insertAfter,insertBefore
JS实现
- 自定义JS扩展DOM功能函数
var DOMextend=function(name,fn){
}if(!document.all){//非IE eval("HTMLElement.prototype."+name+"=fn"); }else{ var _createElement=document.createElement document.createElement=function(tag){ var _elem=_createElement(tag) eval("_elem."+name+"=fn") return _elem } var _getElementById=document.getElementById document.getElementById=function(id){ .. return _elem } var _getElementByTagName= } - 使用JS自定义appendTo,prependTo方法
DOMextend(“appendTo”,function(e){
})var _this=_this e.appendChild(this) return _this - 使用JS自定义after,before方法
- 使用JS自定义insertAfter,insertBefore方法
DOMextend(“insertBefore”,function(e){
})var _this=this e.parentNode.insertBefore(_this,e) return _this
4.4 删除元素
- jQ实现
remove,empty - JS实现
- 使用JS自定义的empty方法
4.5 复制元素
- jQ实现
clone,不复制事件(onclick复制),需要传参true - JS实现
预定义了cloneNode() 参数:true,是否包括原节点的属性和子节点
4.6 替换元素
- jQ实现
replaceWith,replaceAll - JS实现
预定义了replaceChild(将,被) - 使用JS自定义的replaceWith和replaceAll方法
4.7 包裹元素
- jQ实现
- JS实现
- 使用JS自定义wrap,wrapAll,wrapInner的方法
4.8 操作属性
1 设置属性
4.9 操作类样式
1 追加样式
4.10 操作HTML、文本和值
1 读写HTML字符串
2 读写文本内容
3 读写表单值
2018.1.11 四 0:21 P182
2018.1.11 四 22.31
4.11 操作样式表
1 通用CSS样式读写方法
行内-style,内部,外部:stylesheets
2 绝对偏移位置
3 相对偏移位置
4 扩展DOM操作函数
5 元素的宽和高
4.12 元素遍历操作
- jQ实现
- JS实现